# 元组
# a = ()
# b = tuple()
# a = (1, 2, 3, 'hello', True)
# print(a)
# print(a[2])
# print(a[-1]) # 取倒数第一个元素
# for elem in a:
#     print(elem)
# print(3 in a)
# print(a.index(3))

# a = (1, 2, 3)
# b = (4, 5, 6)
# print(a + b)

# def getPoint():
#     x = 10
#     y = 20
#     return x, y
#
# x, y = getPoint()
# print(type(getPoint()))

# 1.创建字典
# a = {}
# print(type(a))
# b = dict()
# print(type(b))

# # 2.创建字典的同时设置初始值
# a = {'id': 1, 'name': 'zhangsan'}
#
# # 更推荐写成这种多行的形式
# a = {
#     'id':1,
#     'name':'zhangsan',
# }
#
# print(a)

# 1.使用 in 来判定某个 key 是否在字典中存在
# a = {
#     'id':1,
#     'name':'zhangsan',
# }
#
# # 判断 id 这个 key 是否在 a这个字典中
# print('id' in a)
# print('classId' in a)
#
# # 注意：in 只是判断 key 是否存在，和 value 无关
# print('zhangsan' in a)
#
# # not in 来判定 key 在字典中不存在
# print('id' not in a)
# print('classId' not in a)

# 2.使用 []来根据 key 获取到 value
# a = {
#     'id':1,
#     'name':'zhangsan',
#     100:'lisi',
# }
#
# print(a['id'])
# print(a['name'])
# print(a[100]) # 此处的100不是下标，而是key
# print(a['classId']) # key不存在，抛异常

# # 1.在字典中新增元素，使用 [] 来进行
# a = {
#     'id': 1,
#     'name': 'zhangsan',
# }
#
# # 这个操作就是往字典里插入新的键值对
# a['score'] = 90
# print(a)
#
# # 2.在字典中，根据 key 修改 value，也是使用 [] 来进行的
# a['score'] = 100
# print(a)
#
# # 3.使用 pop方法，根据 key 来删除键值对
# a.pop('name')
# print(a)

# 直接使用 for循环遍历链表
# a = {
#     'id':1,
#     'name':'zhangsan',
#     'score':90
# }

# for key in a:
#     print(key, a[key])

# print(a.keys())
# print(a.values())
# print(a.items())

# for key, value in a.items():
#     print(key, value)

# 使用hash函数能够计算出一个变量的哈希值
print(hash(0))
print(hash(3.14))
print(hash('hello'))
print(hash(True))
print(hash((1, 2, 3)))

# 有的类型是不能计算哈希值的
print(hash([1,2,3]))
print(hash({}))


